package cn.qingyun.gis.modules.baogan.service;

import cn.qingyun.gis.modules.baogan.vo.*;
import cn.qingyun.gis.modules.baogan.vo.request.*;
import cn.qingyun.gis.modules.baogan.vo.response.DataResponse;
import cn.qingyun.gis.modules.baogan.vo.response.MGridDetailRes;
import cn.qingyun.gis.modules.baogan.vo.response.MicroGridBaseInfoVo;
import cn.qingyun.gis.modules.scenes.entity.PoiScenario;
import cn.qingyun.gis.modules.scenes.entity.PoiScenarioTemp;
import cn.qingyun.gis.modules.scenes.request.*;
import cn.qingyun.gis.modules.scenes.response.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.locationtech.jts.io.ParseException;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author guest
 * @since 2024-04-27
 */
public interface IPoiScenarioAdminService extends IService<PoiScenario> {
    /**
     * 管理后台---模糊搜索
     * @param request
     * @return
     */
    List<PoiScenario> selectPoiDateByName(PoiScenarioLikeRequest request);

    void addBoundary(PolygonRequest request);

    boolean adjustBoundary(PolygonRequest request) throws ParseException;

    @Transactional
    boolean deleteBoundary(String id);

    /**
     * 查询微网格看管划分基本信息
     *
     * @param request
     * @return
     */
    MicroGridBaseInfoVo selectMicroGridBaseInfo(MicroGridCodeRequest request);


    /**
     * 查询点面数据
     * @param request
     * @return
     */
    List<DataResponse> selectPoiAndPolygonData(DataQueryRequest request);

    /**
     * 查询微网格下的点面数据
     * @param request
     * @return
     */
    List<DataResponse> selectPoiAndPolygonMicroData(MicroDataRequest request);

    /**
     * 复制边界
     */
    Boolean copyBoundary(PolygonRequest request);

    /**
     * 查询面中是否存在被看管的点
     *
     * @param request
     * @return
     */
    boolean hasInAoiAndCare(IdInAoiAndCareListRequest request);

}
